<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">

    <!-- Always force latest IE rendering engine or request Chrome Frame -->
    <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <!-- Use title if it's in the page YAML frontmatter -->
    <title>Use a Different PHP Version</title>

    
    

    <link href="/dashboard/stylesheets/normalize.css" rel="stylesheet" type="text/css" /><link href="/dashboard/stylesheets/all.css" rel="stylesheet" type="text/css" />
    <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/3.1.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />

    <script src="/dashboard/javascripts/modernizr.js" type="text/javascript"></script>


    <link href="/dashboard/images/favicon.png" rel="icon" type="image/png" />


  </head>

  <body class="docs docs_use-different-php-version">
    <div id="fb-root"></div>
    <script>(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=277385395761685";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
    <div class="contain-to-grid">
      <nav class="top-bar" data-topbar>
        <ul class="title-area">
          <li class="name">
            <h1><a href="/dashboard/index.html">Apache Friends</a></h1>
          </li>
          <li class="toggle-topbar menu-icon">
            <a href="#">
              <span>Menu</span>
            </a>
          </li>
        </ul>

        <section class="top-bar-section">
          <!-- Right Nav Section -->
          <ul class="right">
              <li class=""><a href="/applications.html">Applications</a></li>
              <li class=""><a href="/dashboard/faq.html">FAQs</a></li>
              <li class="active"><a href="/dashboard/howto.html">HOW-TO Guides</a></li>
              <li class=""><a target="_blank" href="/dashboard/phpinfo.php">PHPInfo</a></li>
              <li class=""><a href="/phpmyadmin/">phpMyAdmin</a></li>
          </ul>
        </section>
      </nav>
    </div>

    <div id="wrapper">
      <div class="hero">
  <div class="row">
    <div class="large-12 columns">
      <h1>Documentation</h1>
    </div>
  </div>
</div>
<div class="row">
  <div class="large-12 columns">
    <ul class="sub-nav">
      <li>
<a class="pdf" target="_blank" href="/dashboard/docs/use-different-php-version.pdf">          Download PDF
          <span>use-different-php-version.pdf</span>
</a>      </li>
    </ul>
    <article class="asciidoctor">
      <h1>Use a Different PHP Version</h1>
<div class="paragraph">
<p>In many cases, you might want to use XAMPP with a different PHP version than the one that comes pre-installed. You might do this to get the benefits of a newer version of PHP, or to reproduce bugs using an earlier version of PHP.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This guide assumes that your system includes all necessary compilation tools. If you don&#8217;t already have this, you can install it easily by running the command <em>sudo apt-get install build-essential</em> or <em>sudo yum groupinstall "Development Tools"</em> from your Linux terminal.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>To use a different version of PHP with XAMPP, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Stop your Apache server using the XAMPP control panel.</p>
</li>
<li>
<p>Open a new Linux terminal and ensure you are logged in as <em>root</em>.</p>
</li>
<li>
<p>Back up your current XAMPP PHP files, in case you later wish to revert to the previous PHP version. These files are stored in two locations: the <em>php/</em> and <em>modules/</em> subdirectories of your XAMPP installation directory (usually, <em>/opt/lampp</em>). You should also back up the <em>php.ini</em> configuration file in the <em>etc/</em> subdirectory.</p>
<div class="literalblock">
<div class="content">
<pre>cd /opt/lampp
mv /opt/lampp/php /opt/lampp/php.old
mv /opt/lampp/etc/php.ini /opt/lampp/etc/php.ini.old
mv /opt/lampp/modules/libphp5.so /opt/lampp/modules/libphp5.so.old</pre>
</div>
</div>
</li>
<li>
<p>Download a source archive of the PHP version that you wish to use from the PHP website, and extract the contents of the compressed archive file to the <em>/tmp</em> directory.</p>
</li>
<li>
<p>Configure and build PHP in the usual manner. When executing the configure script, specify the XAMPP installation directory for the <em>--prefix</em>, <em>--with-apxs2</em> and <em>--with-config-file</em> options, together with directives for any other modules you wish to activate. For example, here is a simple example of configuring PHP with only MySQL support:</p>
<div class="literalblock">
<div class="content">
<pre>./configure --prefix=/opt/lampp --with-apxs2=/opt/lampp/bin/apxs --with-config-file-path=/opt/lampp/etc --with-mysql=mysqlnd</pre>
</div>
</div>
<div class="paragraph">
<p>Here is an example of a  more complex configuration that activates additional modules:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>./configure --prefix=/opt/lampp --with-apxs2=/opt/lampp/bin/apxs --with-config-file-path=/opt/lampp/etc --with-mysql=mysqlnd --enable-inline-optimization --disable-debug --enable-bcmath --enable-calendar --enable-ctype --enable-ftp --enable-gd-native-ttf --enable-magic-quotes --enable-shmop --disable-sigchild --enable-sysvsem --enable-sysvshm --enable-wddx --with-gdbm=/opt/lampp --with-jpeg-dir=/opt/lampp --with-png-dir=/opt/lampp --with-freetype-dir=/opt/lampp --with-zlib=yes --with-zlib-dir=/opt/lampp --with-openssl=/opt/lampp --with-xsl=/opt/lampp --with-ldap=/opt/lampp --with-gd --with-imap-ssl --with-gettext=/opt/lampp --with-mssql=/opt/lampp --with-sybase-ct=/opt/lampp --with-mysql-sock=/opt/lampp/var/mysql/mysql.sock --with-oci8=shared,instantclient,/opt/lampp/lib/instantclient --with-mcrypt=/opt/lampp --with-mhash=/opt/lampp --enable-sockets --enable-mbstring=all --with-curl=/opt/lampp --enable-mbregex --enable-zend-multibyte --enable-exif --with-bz2=/opt/lampp --with-sqlite=shared,/opt/lampp --with-sqlite3=/opt/lampp --with-libxml-dir=/opt/lampp --enable-soap --enable-pcntl --with-mysqli=mysqlnd  --with-iconv=/opt/lampp --with-pdo-mysql=mysqlnd  --with-pdo-sqlite --with-icu-dir=/opt/lampp --enable-fileinfo --enable-phar --enable-zip --enable-intl</pre>
</div>
</div>
<div class="paragraph">
<p>Here is an example of what you might see during the configuration process:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/use-different-php-version/image1.png" alt="image1">
</div>
</div>
<div class="paragraph">
<p>Once configuration is complete, proceed to build PHP as usual.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>make &amp;&amp; make install</pre>
</div>
</div>
<div class="paragraph">
<p>At the end of this step, the new version of PHP should be installed in the <em>php/</em> subdirectory of your XAMPP installation directory, replacing the previous version.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
For more information on how to configure and build PHP on Linux systems, <a href="http://php.net/manual/en/install.unix.apache2.php">refer to the PHP manual</a>.
</td>
</tr>
</table>
</div>
</li>
<li>
<p>Copy the <em>php.ini-development</em> file from the new <em>php/</em> subdirectory to the <em>etc/</em> subdirectory and rename it to <em>php.ini</em>. If you prefer to use production settings, you could instead use the <em>php.ini-production</em> file.</p>
<div class="literalblock">
<div class="content">
<pre>cd /opt/lampp/
cp php/php.ini-development etc/php.ini</pre>
</div>
</div>
</li>
<li>
<p>Restart your Apache server through the XAMPP control panel for your changes to take effect.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>The new version of PHP should now be active. To verify this, browse to the URL <a href="http://localhost/xampp/phpinfo.php" class="bare">http://localhost/xampp/phpinfo.php</a>, which displays the output of the <em>phpinfo()</em> command, and check the version number at the top of the page.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/use-different-php-version/image2.png" alt="image2">
</div>
</div>
    </article>
  </div>
</div>

    </div>

    <footer>
      <div class="row">
        <div class="large-12 columns">
          <div class="row">
            <div class="large-8 columns">
              <ul class="social">
  <li class="twitter"><a href="https://twitter.com/apachefriends">Follow us on Twitter</a></li>
  <li class="facebook"><a href="https://www.facebook.com/we.are.xampp">Like us on Facebook</a></li>
  <li class="google"><a href="https://plus.google.com/+xampp/posts">Add us to your G+ Circles</a></li>
</ul>

              <ul class="inline-list">
                <li><a href="https://www.apachefriends.org/blog.html">Blog</a></li>
                <li><a href="https://www.apachefriends.org/privacy_policy.html">Privacy Policy</a></li>
                <li>
<a target="_blank" href="http://www.fastly.com/">                    CDN provided by
                    <img width="48" data-2x="/dashboard/images/fastly-logo@2x.png" src="/dashboard/images/fastly-logo.png" />
</a>                </li>
              </ul>
            </div>
            <div class="large-4 columns">
              <p class="text-right">Copyright (c) 2018, Apache Friends</p>
            </div>
          </div>
        </div>
      </div>
    </footer>

    <!-- JS Libraries -->
    <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
    <script src="/dashboard/javascripts/all.js" type="text/javascript"></script>
  </body>
</html>
